package com.jintoufs.dao.security;

import com.jintoufs.domain.security.Resource;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * 资源数据访问层接口
 *
 * @author fisher
 */
@Repository
public interface ResourceDAO {
    /**
     * 添加资源
     */
    void insert(Resource resource);

    /**
     * 修改资源
     */

    void update(Resource resource);

    /**
     * 查询资源列表
     */
    List<Resource> selectByParams(Map<String, Object> params);

    /**
     * 查找所有资源
     */
    List<Resource> selectAll();

    /**
     * 根据角色查找资源
     */
    List<Resource> selectByRole(Integer roleId);

    /**
     * 根据ID查找资源
     */
    Resource selectById(Integer id);

    /**
     * 删除资源
     */
    void delete(Integer id);

    /**
     * 添加资源-角色关联信息
     */
    void saveRoleResource(Integer roleId, Integer resourceId);

    void deleteResourceByRole(Integer roleId);

    void deleteResourceById(@Param("id") Integer id);

    int getCountByParams(Map<String, Object> params);
}
